1. Technical Field
This invention pertains to the field of information processing, particularly to techniques for managing inter-task communications and resource allocation among tasks of software programs on parallel processing hardware.
2. Descriptions of the Related Art
Conventional microprocessor and computer system architectures rely mainly of system software for functions of providing inter-task communications (ITC) for an application program, performance isolation (if any actually performed) between different applications, and allocation of processing and communications capacity among pieces of the application programs. However, there are needs for processing systems to grow in their numbers of processors as well as processing cores per a processor, for such systems to get dynamically shared among increasing numbers of applications, as well as for individual applications to comprise increasing numbers of mutually communicating pieces such as threads, tasks and actors. Trying to scale conventional systems in these manners will be challenging, if feasible at all beyond certain practical limits, due at least in part to the performance limits of the software based implementations for the runtime functions per above as well as due to the increase in system software overhead caused by having to handle these runtime functions in software, and the need to do so under increasingly dynamic operating conditions, e.g. due to the movement toward networked utility or ‘cloud’ computing.
There thus is a need for innovations enabling scalable computing architectures supporting effective, low-overhead handling of ITC for application programs, providing performance isolation among the programs sharing dynamically a given pool of parallel processing hardware resources, including in terms of access to the system ITC capacity among the programs, and allocating processing resources among pieces of the programs.